Option Explicit

'################################################################
' Discriptor
' 接口
' DFFilter 的条件定义
'################################################################

'################################################################
' Function
'################################################################
' 检查 DFFilter 的活动行的数据是否符合规则
' 外部不应该主动调用
Public Function unsafeCheckActiveRowVal() As Boolean
End Function

' 检查 DFFilter 中的指定行数据是否符合规则
' 外部不应该主动调用
' 外部应该执行以下检查，符合规则才能调用
'       isUseFilter = True And isUseSingleFilter = True
'
' 只有以下几种情况可以调用该方法，其他情况应该抛出异常:
'   1.只使用了一个 Filter 的单例比较条件
'   2.多列，但是其中一个是字面量 + 另一个列是只使用了一个 Filter 的例
'   3.多列，两个都是字面量
'Public Function unsafeCheckRow(index) As Boolean
'End Function

' 返回当前条件是不是只使用了一个 Filter
Public Function isUseSingleFilter() As Boolean
End Function

' 返回当前条件中是否使用了 Filter
' 因为存在如: And 1=1 这样的全字面量条件
Public Function isUseFilter() As Boolean
End Function

' 获取当前条件中使用的所有 Filter
' @return HashSet<DFFilter>
Public Function getAllFilters() As ISet
End Function

' 检查当前条件使用的 DFFilter 是否和指定的 DFFilter 相同
' 如果条件中使用了多个 Filter，则返回 False
' 如果是全字面量列，则返回 False
Public Function isSameFilter(ByRef filter As DFFilter) As Boolean
End Function